[bubble] Option Setsを使って選択肢のリストを管理する
アプリを作成していると、選択肢のリストを表示してユーザーに選択させて登録する といったケースが出てくることもあります。
例えば、曜日・年月日・言語 などが考えられます。
Bubbleでも静的なリストを設定し、プラグラミングでいう変数のように使用できます。 これがOption Setsという機能です。
やってみる
Profile編集のページで使用言語とタイムゾーンなどを設定できるフォームをユースケースとして使ってみます。
イメージ:
上記ではテキストで固定していますが、言語をOption Setsに置き換えていきます。
Option Sets作成
アプリの管理画面のDataメニューに設定できる画面があります。
New option set の欄に独自の名前を入力して作成できます。
注意点なのですが、カスタムデータ型と同じ名前を使っている場合、予期しない動作が発生する可能性があるとのことです。 例えば、一方に残されたメモがもう片方にも表示されたりとか。
属性の作成
オプションを作成後、属性を追加できるようになります。
Typeのカスタムフィールドのようなもので、属性名とタイプを設定できます。
ここで追加した属性に対してアプリからアクセスすることが可能になります。
デフォルトでは Display属性が存在していて、オプションの名前をドロップダウンリストに表示させる場合などに使えます。
今回は 使用言語を選択できるドロップダウンリストを想定し、languageLists
というOption Setsを作成し、
index
という属性をnumber型
で作成します。
オプションの追加
属性追加後、New optionの箇所からオプションの名前を入力して追加できます。
追加したオプションの一覧が表示されるようになりますが、modify attributes
をクリックすると、追加した別属性も設定できるようになります。
indexという属性を追加したので、数字を追加で入力していきます。
作成したOption Setsを使う
Option Setsは、ドロップダウンリストやRepeating groupなどのカスタムタイプが使用できる箇所であればどこでも使用できます。
ドロップダウンリストで使用する場合
ドロップダウンのエレメントを配置した後、Choices style
を Dyanmic choices
にします。
Type of choices
で、作成したOption Setsを選べるようになっているはずなので、対応するものを選択します。
Choices source
では表示させるオプションの条件を設定できます。今回はAll languageList
を選択します。
オプションにセットしたものが全て表示されます。
Opstion caption
は、Current option
を選択し、Display
属性を表示させるようにします。
Previewで確認してみると、上記画像のように設定したリストが表示さrます。
ラジオボタンでも同じ設定で表示させることができました。
保存された値を使ったドロップダウンリストのデフォルト表示
Userタイプやカスタムタイプに保存した値をドロップダウンリストのデフォルト表示にしたい場合、設定を少し変更しないと意図通りに動きませんでした。
上記画像は、UserタイプのLangというフィールドに、ドロップボックスで選択したDisplay属性の値を保存した時の状態です(Langの型はText)
Type of choices
Text
(フィールドの型と同じに)
Choices source
All <<option sets名>>'s Display
- 今回の例だと、
All languageList's Display
- 今回の例だと、
Opstion caption
Current option
Default value
Current User's<<カスタムフィールド名>>
- 今回の例だと、
Current User's Lang
- 今回の例だと、
このようにテキストタイプを使用することでDataに保存した値をデフォルトに設定できました
最後に
Option Setsを使ってアプリでアクセスする静的なリストを作成してみました。
カスタムタイプでも同じようなことはできますが、データベースにアクセスしないので読み取りは高速、新しいオプションの追加や変更などの拡張が容易、検索も簡単 といった特徴があります。
ただし、カスタムタイプとは違ってプライバシー設定(今後の記事で検証します)ができないので、機密情報を扱う場合などは向いていません。
ケースにより使い分けることが必要ですね。